<?php    
require_once($_SERVER['DOCUMENT_ROOT'].'/settings.php');
require_once(Settings::getHome().'/classes/template.php');

//A este archivo no se puede acceder directamente, sólo mediante POST
if($_SERVER['REQUEST_METHOD'] != 'POST') {
    header('Location:/contacto/'); //Redireccionar a página de contacto
    exit();
}

$valid = true; //Indica si los valores enviados son correctos.
$nombreVal=$_REQUEST['nombre'];
$emailVal=$_REQUEST['email'];
$mensajeVal=ltrim($_REQUEST['mensaje']);


//Validar que nombre no esté vacío
if($valid and empty($nombreVal)) {
    $valid = false;
    $msg = 'Nombre no puede estar vacío.';
}

//Validar formato del nombre
$regexNombre = "/^[a-zA-ZáéíóúÁÉÍÓÚñÑ]+([ ][a-zA-ZáéíóúÁÉÍÓÚñÑ]+)*$/"; //Se permiten letras y espacios únicamente
if($valid and !preg_match($regexNombre, $nombreVal)) {
    $valid = false;
    $msg = 'Nombre sólo puede contener letras y espacios.';
    $nombreVal='';
}

//Validar que el email no esté vacío
if($valid and empty($emailVal)) {
    $valid = false;
    $msg = 'El email no puede estar vacío.';
}

//Validar formato del email
$regexEmail = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/"; 
if($valid and !preg_match($regexEmail, $emailVal)) {
    $valid = false;
    $msg = 'Introduzca un email válido.';
    $emailVal='';
}

//Validar que el mensaje no esté vacío
if($valid and empty($mensajeVal)) {
    $valid = false;
    $msg = 'El mensaje no puede estar vacío.';
}

if($valid) {
    //Aquí se envían los correos
    $to = Settings::getAdmins();
    $from = 'Trisfera <info@trisfera.com>';
    $replyto = sprintf("%s <%s>",$nombreVal,$emailVal);
    $subject = 'Mensaje enviado desde Trisfera';
    $message = sprintf("nombre:%s \n\n email:%s \n\n mensaje:%s", $nombreVal,$emailVal,$mensajeVal);
    $headers = "From: $from\r\n".
                "Reply-To: $replyto\r\n";
    $result = mail($to, $subject, $message,$headers);
    if(empty($result)) {
        $valid = false;
        $msg = 'Hubo un error al enviar el email. Por favor intente nuevamente.';
    }
}

if(!$valid) {
    header('Location:/contacto?error=true&msg='.urlencode($msg).'&nombre='.urlencode($nombreVal).'&email='.urlencode($emailVal).'&mensaje='.urlencode($mensajeVal)); //Redireccionar a página de contacto
    exit();
}
else {
    $msg = nl2br("Gracias por su mensaje. Nos pondremos en contacto tan pronto sea posible.\nEstos fueron los datos que envió:");
	header('Location:/contacto?error=false&msg='.urlencode($msg).'&nombre='.urlencode($nombreVal).'&email='.urlencode($emailVal).'&mensaje='.urlencode(nl2br($mensajeVal))); //Redireccionar a página de contacto
    exit();
}
?>
